/**
 * 
 */
package com.alstudio.utils.notification;

/**
 * 此类封装了系统设置的相关属性 如声音开关、振动开关
 * 
 * @author alonso Lee
 * 
 */
public class SystemSettings {

	private boolean soundState = true;
	private boolean vbrationState = true;

	private boolean muteState = false;
	// 来电通知
	private boolean callNoticeState = true;
	// 屏蔽陌生人来电
	private boolean blockstrangercall = false;
	// 屏蔽陌生人留言
	private boolean blockstrangermsg = false;
	// 隐身登陆
	private boolean hiding = false;

	private String muteStart;
	private String muteEnd;
	// 此变量仅用于判断是否与服务器同步
	private boolean isSynchronized = false;

	private ModifySettingType modifyType = ModifySettingType.SETTING_MODIFY_TYPE_NONE;

	public SystemSettings() {

	}

	public void setMuteState(boolean e) {
		this.muteState = e;
	}

	public boolean getMuteState() {
		return muteState;
	}

	public void setMuteStartTime(String muteStart) {
		this.muteStart = muteStart;
	}

	public String getMuteStartTime() {
		return this.muteStart;
	}

	public void setMuteEndTime(String muteEnd) {
		this.muteEnd = muteEnd;
	}

	public String getMuteEndTime() {
		return muteEnd;
	}

	public void setSoundState(boolean state) {
		soundState = state;
	}

	public boolean getSoundState() {
		return this.soundState;
	}

	public void setVbrationState(boolean state) {
		vbrationState = state;
	}

	public boolean getVbrationState() {
		return this.vbrationState;
	}

	/**
	 * @param callNoticeState
	 *            the callNoticeState to set
	 */
	public void setCallNoticeState(boolean callNoticeState) {
		this.callNoticeState = callNoticeState;
	}

	/**
	 * @return the callNoticeState
	 */
	public boolean getCallNoticeState() {
		return callNoticeState;
	}

	/**
	 * @return the blockstrangercall
	 */
	public boolean isBlockstrangercall() {
		return blockstrangercall;
	}

	/**
	 * @param blockstrangercall
	 *            the blockstrangercall to set
	 */
	public void setBlockstrangercall(boolean blockstrangercall) {
		this.blockstrangercall = blockstrangercall;
	}

	/**
	 * @return the blockstrangermsg
	 */
	public boolean isBlockstrangermsg() {
		return blockstrangermsg;
	}

	/**
	 * @param blockstrangermsg
	 *            the blockstrangermsg to set
	 */
	public void setBlockstrangermsg(boolean blockstrangermsg) {
		this.blockstrangermsg = blockstrangermsg;
	}

	/**
	 * @return the hiding
	 */
	public boolean isHiding() {
		return hiding;
	}

	/**
	 * @param hiding
	 *            the hiding to set
	 */
	public void setHiding(boolean hiding) {
		this.hiding = hiding;
	}

	/**
	 * @return the modifyType
	 */
	public ModifySettingType getModifyType() {
		return modifyType;
	}

	/**
	 * @param modifyType
	 *            the modifyType to set
	 */
	public void setModifyType(ModifySettingType modifyType) {
		this.modifyType = modifyType;
	}

	/**
	 * @param isSynchronized the isSynchronized to set
	 */
	public void setSynchronized(boolean isSynchronized) {
		this.isSynchronized = isSynchronized;
	}
	
	/**
	 * @return the isSynchronized
	 */
	public boolean isSynchronized() {
		return isSynchronized;
	}
	
	public enum ModifySettingType {
		// 什麽都沒修改
		SETTING_MODIFY_TYPE_NONE,
		// 修改静音时段
		SETTING_MODIFY_TYPE_SILENCE,
		// 修改隐身
		SETTING_MODIFY_TYPE_HIDING,
		// 修改声音
		SETTING_MODIFY_TYPE_SOUND,
		// 修改震动
		SETTING_MODIFY_TYPE_VIBRATION,
		// 修改来电提醒
		SETTING_MODIFY_TYPE_CALL_NOTICE,
		// 屏蔽陌生人来电
		SETTING_MODIFY_TYPE_BLOCK_STRANGER_CALL,
		// 屏蔽陌生人留言
		SETTING_MODIFY_TYPE_BLOCK_STRANGER_MESSAGE,
	}

}